[INFO] cloning repository https://github.com/christopherwebb/rust_ray_tracer
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/christopherwebb/rust_ray_tracer" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fchristopherwebb%2Frust_ray_tracer", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fchristopherwebb%2Frust_ray_tracer'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 52460c9acf71130fa146ca446e2d50f602afe972
[INFO] building christopherwebb/rust_ray_tracer against master#ff34b919075f35a1787659e9c448a34b06bab8de for issue-85264
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fchristopherwebb%2Frust_ray_tracer" "/workspace/builds/worker-5/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-5/source'...
[INFO] [stderr] done.
[INFO] validating manifest of git repo https://github.com/christopherwebb/rust_ray_tracer on toolchain ff34b919075f35a1787659e9c448a34b06bab8de
[INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+ff34b919075f35a1787659e9c448a34b06bab8de" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] started tweaking git repo https://github.com/christopherwebb/rust_ray_tracer
[INFO] finished tweaking git repo https://github.com/christopherwebb/rust_ray_tracer
[INFO] tweaked toml for git repo https://github.com/christopherwebb/rust_ray_tracer written to /workspace/builds/worker-5/source/Cargo.toml
[INFO] crate git repo https://github.com/christopherwebb/rust_ray_tracer already has a lockfile, it will not be regenerated
[INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+ff34b919075f35a1787659e9c448a34b06bab8de" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:20528e8c29e4536546f0102ce88568b16ea7538393a33fcca951030f7af10457" "/opt/rustwide/cargo-home/bin/cargo" "+ff34b919075f35a1787659e9c448a34b06bab8de" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] bad04d7588b51a288daa747f662e0d5664f8d8a1a80f14556929d7ec5b53ebdb
[INFO] [stderr] WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap.
[INFO] running `Command { std: "docker" "start" "-a" "bad04d7588b51a288daa747f662e0d5664f8d8a1a80f14556929d7ec5b53ebdb", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "bad04d7588b51a288daa747f662e0d5664f8d8a1a80f14556929d7ec5b53ebdb", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "bad04d7588b51a288daa747f662e0d5664f8d8a1a80f14556929d7ec5b53ebdb", kill_on_drop: false }`
[INFO] [stdout] bad04d7588b51a288daa747f662e0d5664f8d8a1a80f14556929d7ec5b53ebdb
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:20528e8c29e4536546f0102ce88568b16ea7538393a33fcca951030f7af10457" "/opt/rustwide/cargo-home/bin/cargo" "+ff34b919075f35a1787659e9c448a34b06bab8de" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] df23f1a5e59cebb23581be3651f724423ee56784f1ba1ddf4ecd6aa3073635ef
[INFO] [stderr] WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap.
[INFO] running `Command { std: "docker" "start" "-a" "df23f1a5e59cebb23581be3651f724423ee56784f1ba1ddf4ecd6aa3073635ef", kill_on_drop: false }`
[INFO] [stderr]    Compiling unicode-xid v0.2.0
[INFO] [stderr]    Compiling syn v1.0.9
[INFO] [stderr]    Compiling ppv-lite86 v0.2.5
[INFO] [stderr]    Compiling regex-syntax v0.6.12
[INFO] [stderr]    Compiling ryu v1.0.2
[INFO] [stderr]    Compiling serde v1.0.97
[INFO] [stderr]    Compiling number_prefix v0.3.0
[INFO] [stderr]    Compiling lazy_static v1.3.0
[INFO] [stderr]    Compiling rand_chacha v0.2.0
[INFO] [stderr]    Compiling atty v0.2.13
[INFO] [stderr]    Compiling float-cmp v0.8.0
[INFO] [stderr]    Compiling getrandom v0.1.6
[INFO] [stderr]    Compiling clicolors-control v1.0.1
[INFO] [stderr]    Compiling proc-macro2 v1.0.6
[INFO] [stderr]    Compiling clap v2.33.0
[INFO] [stderr]    Compiling rand_core v0.5.0
[INFO] [stderr]    Compiling c2-chacha v0.2.2
[INFO] [stderr]    Compiling quote v1.0.2
[INFO] [stderr]    Compiling rand v0.7.0
[INFO] [stderr]    Compiling regex v1.3.1
[INFO] [stderr]    Compiling console v0.9.1
[INFO] [stderr]    Compiling indicatif v0.13.0
[INFO] [stderr]    Compiling serde_derive v1.0.103
[INFO] [stderr]    Compiling serde_json v1.0.42
[INFO] [stderr]    Compiling rust_ray_tracing v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused imports: `Matrix4x4f`, `Normal3f`, `dot_vn`, `dot_vv`
[INFO] [stdout]  --> src/aabb.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 |     Normal3f,
[INFO] [stdout]   |     ^^^^^^^^
[INFO] [stdout] 3 |     Point3f,
[INFO] [stdout] 4 |     Matrix4x4f,
[INFO] [stdout]   |     ^^^^^^^^^^
[INFO] [stdout] 5 |     dot_vv,
[INFO] [stdout]   |     ^^^^^^
[INFO] [stdout] 6 |     dot_vn,
[INFO] [stdout]   |     ^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `rand::thread_rng`
[INFO] [stdout]   --> src/vector.rs:13:5
[INFO] [stdout]    |
[INFO] [stdout] 13 | use rand::thread_rng;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `rand::Rng`
[INFO] [stdout]   --> src/vector.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 14 | use rand::Rng;
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `dot_vv`
[INFO] [stdout]  --> src/shapes/cylinder.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 |     dot_vv,
[INFO] [stdout]   |     ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `solve_quadratic`
[INFO] [stdout]   --> src/shapes/sphere.rs:15:27
[INFO] [stdout]    |
[INFO] [stdout] 15 | use crate::shapes::base::{solve_quadratic, Hitable};
[INFO] [stdout]    |                           ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Matrix4x4f`
[INFO] [stdout]  --> src/shapes/base.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 |     Matrix4x4f,
[INFO] [stdout]   |     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Matrix4x4f`, `dot_vn`
[INFO] [stdout]   --> src/shapes/sphere2.rs:8:5
[INFO] [stdout]    |
[INFO] [stdout] 8  |     Matrix4x4f,
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 9  |     dot_vv,
[INFO] [stdout] 10 |     dot_vn,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `t_min`
[INFO] [stdout]   --> src/aabb.rs:28:13
[INFO] [stdout]    |
[INFO] [stdout] 28 |         let t_min = if t0 > t_min { t0 } else { t_min };
[INFO] [stdout]    |             ^^^^^ help: if this is intentional, prefix it with an underscore: `_t_min`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `t_min`
[INFO] [stdout]   --> src/aabb.rs:45:13
[INFO] [stdout]    |
[INFO] [stdout] 45 |         let t_min = if t0 > t_min { t0 } else { t_min };
[INFO] [stdout]    |             ^^^^^ help: if this is intentional, prefix it with an underscore: `_t_min`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `t_min`
[INFO] [stdout]   --> src/aabb.rs:62:13
[INFO] [stdout]    |
[INFO] [stdout] 62 |         let t_min = if t0 > t_min { t0 } else { t_min };
[INFO] [stdout]    |             ^^^^^ help: if this is intentional, prefix it with an underscore: `_t_min`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `phi` is never read
[INFO] [stdout]   --> src/shapes/cylinder.rs:78:17
[INFO] [stdout]    |
[INFO] [stdout] 78 |                 phi += 2.0 * f32::consts::PI;
[INFO] [stdout]    |                 ^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_assignments)]` on by default
[INFO] [stdout]    = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `time_0`
[INFO] [stdout]   --> src/shapes/sphere2.rs:78:9
[INFO] [stdout]    |
[INFO] [stdout] 78 |         time_0: f32,
[INFO] [stdout]    |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_time_0`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `time_1`
[INFO] [stdout]   --> src/shapes/sphere2.rs:79:9
[INFO] [stdout]    |
[INFO] [stdout] 79 |         time_1: f32,
[INFO] [stdout]    |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_time_1`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function is never used: `dot`
[INFO] [stdout]   --> src/core/normal.rs:55:8
[INFO] [stdout]    |
[INFO] [stdout] 55 | pub fn dot<T>(l: &Normal3T<T>, r: &Normal3T<T>) -> T
[INFO] [stdout]    |        ^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `N` should have a snake case name
[INFO] [stdout]    --> src/shapes/cylinder.rs:139:17
[INFO] [stdout]     |
[INFO] [stdout] 139 |             let N = &cross(&dpdu, &dpdv).unit_vector();
[INFO] [stdout]     |                 ^ help: convert the identifier to snake case: `n`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(non_snake_case)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 15 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Read`
[INFO] [stdout]  --> src/bin/rust_ray_assemble.rs:1:21
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::io::{self, Read};
[INFO] [stdout]   |                     ^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: comparison is useless due to type limits
[INFO] [stdout]   --> src/bin/rust_ray_assemble.rs:45:12
[INFO] [stdout]    |
[INFO] [stdout] 45 |         if x_coord < 0 || x_coord >= n_x || y_coord < 0 || y_coord >= n_y {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_comparisons)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: comparison is useless due to type limits
[INFO] [stdout]   --> src/bin/rust_ray_assemble.rs:45:45
[INFO] [stdout]    |
[INFO] [stdout] 45 |         if x_coord < 0 || x_coord >= n_x || y_coord < 0 || y_coord >= n_y {
[INFO] [stdout]    |                                             ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Read`, `self`
[INFO] [stdout]  --> src/main.rs:2:15
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::io::{self, Read};
[INFO] [stdout]   |               ^^^^  ^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Matrix4x4f`, `Normal3f`, `dot_vn`, `dot_vv`
[INFO] [stdout]  --> src/aabb.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 |     Normal3f,
[INFO] [stdout]   |     ^^^^^^^^
[INFO] [stdout] 3 |     Point3f,
[INFO] [stdout] 4 |     Matrix4x4f,
[INFO] [stdout]   |     ^^^^^^^^^^
[INFO] [stdout] 5 |     dot_vv,
[INFO] [stdout]   |     ^^^^^^
[INFO] [stdout] 6 |     dot_vn,
[INFO] [stdout]   |     ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::core::Point3f`
[INFO] [stdout]  --> src/bvh_tree.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use crate::core::Point3f;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Deserialize`, `Serialize`
[INFO] [stdout]  --> src/material2.rs:3:13
[INFO] [stdout]   |
[INFO] [stdout] 3 | use serde::{Deserialize, Serialize};
[INFO] [stdout]   |             ^^^^^^^^^^^  ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Normal3f`, `Point3f`
[INFO] [stdout]   --> src/material2.rs:8:5
[INFO] [stdout]    |
[INFO] [stdout] 8  |     Point3f,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 9  |     Vector3f,
[INFO] [stdout] 10 |     Normal3f,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::aabb::AABB`
[INFO] [stdout]  --> src/scene2.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::aabb::AABB;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Normal3f`, `Point3f`
[INFO] [stdout]  --> src/scene2.rs:5:19
[INFO] [stdout]   |
[INFO] [stdout] 5 | use crate::core::{Point3f, Normal3f, Colour};
[INFO] [stdout]   |                   ^^^^^^^  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Normal3f`, `gen_rotate_x`, `gen_rotate_y`, `gen_rotate_z`
[INFO] [stdout]   --> src/scene_generator.rs:9:5
[INFO] [stdout]    |
[INFO] [stdout] 9  |     Normal3f,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 14 |     gen_rotate_x,
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] 15 |     gen_rotate_y,
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] 16 |     gen_rotate_z,
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `dot_vv`
[INFO] [stdout]  --> src/shapes/cylinder.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 |     dot_vv,
[INFO] [stdout]   |     ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `solve_quadratic`
[INFO] [stdout]   --> src/shapes/sphere.rs:15:27
[INFO] [stdout]    |
[INFO] [stdout] 15 | use crate::shapes::base::{solve_quadratic, Hitable};
[INFO] [stdout]    |                           ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Matrix4x4f`
[INFO] [stdout]  --> src/shapes/base.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 |     Matrix4x4f,
[INFO] [stdout]   |     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Matrix4x4f`, `dot_vn`
[INFO] [stdout]   --> src/shapes/sphere2.rs:8:5
[INFO] [stdout]    |
[INFO] [stdout] 8  |     Matrix4x4f,
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 9  |     dot_vv,
[INFO] [stdout] 10 |     dot_vn,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `rand::thread_rng`
[INFO] [stdout]   --> src/vector.rs:13:5
[INFO] [stdout]    |
[INFO] [stdout] 13 | use rand::thread_rng;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `rand::Rng`
[INFO] [stdout]   --> src/vector.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 14 | use rand::Rng;
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Normal3f`
[INFO] [stdout]  --> src/textures/base.rs:1:28
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::core::{Point3f, Normal3f, Colour};
[INFO] [stdout]   |                            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Normal3f`
[INFO] [stdout]  --> src/textures/solid_colour.rs:1:28
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::core::{Point3f, Normal3f, Colour};
[INFO] [stdout]   |                            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Scene`
[INFO] [stdout]   --> src/main.rs:42:21
[INFO] [stdout]    |
[INFO] [stdout] 42 | use crate::scene2::{Scene, calculate_colour};
[INFO] [stdout]    |                     ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ShapeTrait`
[INFO] [stdout]  --> src/bvh_tree.rs:8:40
[INFO] [stdout]   |
[INFO] [stdout] 8 | use crate::shapes::base::{Interaction, ShapeTrait};
[INFO] [stdout]   |                                        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ShapeTrait`
[INFO] [stdout]  --> src/scene2.rs:3:40
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::shapes::base::{Interaction, ShapeTrait};
[INFO] [stdout]   |                                        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `t_min`
[INFO] [stdout]   --> src/aabb.rs:28:13
[INFO] [stdout]    |
[INFO] [stdout] 28 |         let t_min = if t0 > t_min { t0 } else { t_min };
[INFO] [stdout]    |             ^^^^^ help: if this is intentional, prefix it with an underscore: `_t_min`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `t_min`
[INFO] [stdout]   --> src/aabb.rs:45:13
[INFO] [stdout]    |
[INFO] [stdout] 45 |         let t_min = if t0 > t_min { t0 } else { t_min };
[INFO] [stdout]    |             ^^^^^ help: if this is intentional, prefix it with an underscore: `_t_min`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `t_min`
[INFO] [stdout]   --> src/aabb.rs:62:13
[INFO] [stdout]    |
[INFO] [stdout] 62 |         let t_min = if t0 > t_min { t0 } else { t_min };
[INFO] [stdout]    |             ^^^^^ help: if this is intentional, prefix it with an underscore: `_t_min`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `index`
[INFO] [stdout]   --> src/bvh_tree.rs:37:23
[INFO] [stdout]    |
[INFO] [stdout] 37 |             .filter(|(index, aabb_option)| aabb_option.is_some())
[INFO] [stdout]    |                       ^^^^^ help: if this is intentional, prefix it with an underscore: `_index`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `left_col`
[INFO] [stdout]    --> src/bvh_tree.rs:129:35
[INFO] [stdout]     |
[INFO] [stdout] 129 | ...                   (Some(left_col),              None) => left_collsion,
[INFO] [stdout]     |                             ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_left_col`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `left`
[INFO] [stdout]    --> src/bvh_tree.rs:167:28
[INFO] [stdout]     |
[INFO] [stdout] 167 |             Self::Branch { left, right, aabb} => *aabb,
[INFO] [stdout]     |                            ^^^^ help: try ignoring the field: `left: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `right`
[INFO] [stdout]    --> src/bvh_tree.rs:167:34
[INFO] [stdout]     |
[INFO] [stdout] 167 |             Self::Branch { left, right, aabb} => *aabb,
[INFO] [stdout]     |                                  ^^^^^ help: try ignoring the field: `right: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `primative`
[INFO] [stdout]    --> src/bvh_tree.rs:168:26
[INFO] [stdout]     |
[INFO] [stdout] 168 |             Self::Leaf { primative, aabb } => *aabb,
[INFO] [stdout]     |                          ^^^^^^^^^ help: try ignoring the field: `primative: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `time_t`
[INFO] [stdout]   --> src/scene_generator.rs:56:34
[INFO] [stdout]    |
[INFO] [stdout] 56 |     fn generate_transform(&self, time_t: f32) -> Transform {
[INFO] [stdout]    |                                  ^^^^^^ help: if this is intentional, prefix it with an underscore: `_time_t`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `phi` is never read
[INFO] [stdout]   --> src/shapes/cylinder.rs:78:17
[INFO] [stdout]    |
[INFO] [stdout] 78 |                 phi += 2.0 * f32::consts::PI;
[INFO] [stdout]    |                 ^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_assignments)]` on by default
[INFO] [stdout]    = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `time_0`
[INFO] [stdout]   --> src/shapes/sphere2.rs:78:9
[INFO] [stdout]    |
[INFO] [stdout] 78 |         time_0: f32,
[INFO] [stdout]    |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_time_0`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `time_1`
[INFO] [stdout]   --> src/shapes/sphere2.rs:79:9
[INFO] [stdout]    |
[INFO] [stdout] 79 |         time_1: f32,
[INFO] [stdout]    |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_time_1`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `u`
[INFO] [stdout]   --> src/textures/solid_colour.rs:10:18
[INFO] [stdout]    |
[INFO] [stdout] 10 |     fn value(&self, u: f32, v: f32, p: Point3f) -> Colour {
[INFO] [stdout]    |                     ^ help: if this is intentional, prefix it with an underscore: `_u`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `v`
[INFO] [stdout]   --> src/textures/solid_colour.rs:10:26
[INFO] [stdout]    |
[INFO] [stdout] 10 |     fn value(&self, u: f32, v: f32, p: Point3f) -> Colour {
[INFO] [stdout]    |                             ^ help: if this is intentional, prefix it with an underscore: `_v`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `p`
[INFO] [stdout]   --> src/textures/solid_colour.rs:10:34
[INFO] [stdout]    |
[INFO] [stdout] 10 |     fn value(&self, u: f32, v: f32, p: Point3f) -> Colour {
[INFO] [stdout]    |                                     ^ help: if this is intentional, prefix it with an underscore: `_p`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function is never used: `hit`
[INFO] [stdout]   --> src/aabb.rs:17:12
[INFO] [stdout]    |
[INFO] [stdout] 17 |     pub fn hit(self, r: &Ray, t_min: f32, t_max: f32) -> bool {
[INFO] [stdout]    |            ^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function is never used: `join`
[INFO] [stdout]   --> src/aabb.rs:85:12
[INFO] [stdout]    |
[INFO] [stdout] 85 |     pub fn join(box_a: &AABB, box_b: &AABB) -> AABB {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct is never constructed: `BVHTree`
[INFO] [stdout]   --> src/bvh_tree.rs:11:12
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub struct BVHTree {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function is never used: `blank`
[INFO] [stdout]   --> src/bvh_tree.rs:19:12
[INFO] [stdout]    |
[INFO] [stdout] 19 |     pub fn blank() -> Self {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function is never used: `new`
[INFO] [stdout]   --> src/bvh_tree.rs:27:12
[INFO] [stdout]    |
[INFO] [stdout] 27 |     pub fn new(primatives: Vec<Primative>, time_0: f32, time_1: f32) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function is never used: `new_branch`
[INFO] [stdout]   --> src/bvh_tree.rs:60:8
[INFO] [stdout]    |
[INFO] [stdout] 60 |     fn new_branch(rnd_gen: &mut rand::rngs::ThreadRng, nodes: &mut Vec<Node>, primative_subsection: &mut Vec<(usize, AABB)>) -> usize {
[INFO] [stdout]    |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function is never used: `get_collision`
[INFO] [stdout]    --> src/bvh_tree.rs:100:12
[INFO] [stdout]     |
[INFO] [stdout] 100 |     pub fn get_collision(&self, ray: &Ray, t_min: f32, t_max: f32) -> Option<Interaction> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function is never used: `get_collision_on`
[INFO] [stdout]    --> src/bvh_tree.rs:107:8
[INFO] [stdout]     |
[INFO] [stdout] 107 |     fn get_collision_on(&self, index: usize, ray: &Ray, t_min: f32, t_max: f32) -> Option<Interaction> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant is never constructed: `Branch`
[INFO] [stdout]    --> src/bvh_tree.rs:152:5
[INFO] [stdout]     |
[INFO] [stdout] 152 | /     Branch {
[INFO] [stdout] 153 | |         left: Option<usize>,
[INFO] [stdout] 154 | |         right: Option<usize>,
[INFO] [stdout] 155 | |         aabb: AABB,
[INFO] [stdout] 156 | |     },
[INFO] [stdout]     | |_____^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant is never constructed: `Leaf`
[INFO] [stdout]    --> src/bvh_tree.rs:157:5
[INFO] [stdout]     |
[INFO] [stdout] 157 | /     Leaf {
[INFO] [stdout] 158 | |         primative: usize,
[INFO] [stdout] 159 | |         aabb: AABB,
[INFO] [stdout] 160 | |     },
[INFO] [stdout]     | |_____^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function is never used: `get_aabb`
[INFO] [stdout]    --> src/bvh_tree.rs:165:8
[INFO] [stdout]     |
[INFO] [stdout] 165 |     fn get_aabb(&self) -> AABB {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function is never used: `length`
[INFO] [stdout]   --> src/core/point.rs:38:12
[INFO] [stdout]    |
[INFO] [stdout] 38 |     pub fn length(&self) -> f32 {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function is never used: `squared_length`
[INFO] [stdout]   --> src/core/point.rs:42:12
[INFO] [stdout]    |
[INFO] [stdout] 42 |     pub fn squared_length(&self) -> f32 {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias is never used: `Vector2i`
[INFO] [stdout]   --> src/core/vector.rs:42:1
[INFO] [stdout]    |
[INFO] [stdout] 42 | pub type Vector2i = Vector2T<i32>;
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias is never used: `Vector2f`
[INFO] [stdout]   --> src/core/vector.rs:43:1
[INFO] [stdout]    |
[INFO] [stdout] 43 | pub type Vector2f = Vector2T<f32>;
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias is never used: `Vector3i`
[INFO] [stdout]   --> src/core/vector.rs:44:1
[INFO] [stdout]    |
[INFO] [stdout] 44 | pub type Vector3i = Vector3T<i32>;
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function is never used: `length`
[INFO] [stdout]   --> src/core/vector.rs:48:12
[INFO] [stdout]    |
[INFO] [stdout] 48 |     pub fn length<T>(&self) -> f32 {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function is never used: `squared_length`
[INFO] [stdout]   --> src/core/vector.rs:52:12
[INFO] [stdout]    |
[INFO] [stdout] 52 |     pub fn squared_length<T>(&self) -> f32 {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias is never used: `Normal2i`
[INFO] [stdout]   --> src/core/normal.rs:36:1
[INFO] [stdout]    |
[INFO] [stdout] 36 | pub type Normal2i = Normal2T<i32>;
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias is never used: `Normal2f`
[INFO] [stdout]   --> src/core/normal.rs:37:1
[INFO] [stdout]    |
[INFO] [stdout] 37 | pub type Normal2f = Normal2T<f32>;
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias is never used: `Normal3i`
[INFO] [stdout]   --> src/core/normal.rs:38:1
[INFO] [stdout]    |
[INFO] [stdout] 38 | pub type Normal3i = Normal3T<i32>;
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function is never used: `dot`
[INFO] [stdout]   --> src/core/normal.rs:55:8
[INFO] [stdout]    |
[INFO] [stdout] 55 | pub fn dot<T>(l: &Normal3T<T>, r: &Normal3T<T>) -> T
[INFO] [stdout]    |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias is never used: `Matrix4x4i`
[INFO] [stdout]   --> src/core/matrix.rs:17:1
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub type Matrix4x4i = Matrix4x4<i32>;
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function is never used: `indentity`
[INFO] [stdout]   --> src/core/matrix.rs:33:8
[INFO] [stdout]    |
[INFO] [stdout] 33 | pub fn indentity() -> Matrix4x4f {
[INFO] [stdout]    |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function is never used: `gen_rotate_x`
[INFO] [stdout]   --> src/core/transforms.rs:53:8
[INFO] [stdout]    |
[INFO] [stdout] 53 | pub fn gen_rotate_x(theta: f32) -> Transform {
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function is never used: `gen_rotate_y`
[INFO] [stdout]   --> src/core/transforms.rs:80:8
[INFO] [stdout]    |
[INFO] [stdout] 80 | pub fn gen_rotate_y(theta: f32) -> Transform {
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function is never used: `gen_rotate_z`
[INFO] [stdout]    --> src/core/transforms.rs:107:8
[INFO] [stdout]     |
[INFO] [stdout] 107 | pub fn gen_rotate_z(theta: f32) -> Transform {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function is never used: `dot_nv`
[INFO] [stdout]   --> src/core/mod.rs:73:8
[INFO] [stdout]    |
[INFO] [stdout] 73 | pub fn dot_nv<T>(l: &Normal3T<T>, r: &Vector3T<T>) -> T
[INFO] [stdout]    |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function is never used: `dot_nn`
[INFO] [stdout]   --> src/core/mod.rs:82:8
[INFO] [stdout]    |
[INFO] [stdout] 82 | pub fn dot_nn<T>(l: &Normal3T<T>, r: &Normal3T<T>) -> T
[INFO] [stdout]    |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct is never constructed: `HitRecord`
[INFO] [stdout]   --> src/material2.rs:25:8
[INFO] [stdout]    |
[INFO] [stdout] 25 | struct HitRecord {}
[INFO] [stdout]    |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct is never constructed: `MaterialHit`
[INFO] [stdout]   --> src/material.rs:33:12
[INFO] [stdout]    |
[INFO] [stdout] 33 | pub struct MaterialHit {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function is never used: `scatter`
[INFO] [stdout]   --> src/material.rs:49:12
[INFO] [stdout]    |
[INFO] [stdout] 49 |     pub fn scatter(self, ray_in: &Ray, hit: &HitRecord) -> MaterialHit {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function is never used: `schlick`
[INFO] [stdout]    --> src/material.rs:137:12
[INFO] [stdout]     |
[INFO] [stdout] 137 |     pub fn schlick(cosine : f32, ref_idx : f32) -> f32 {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function is never used: `make_lambertian`
[INFO] [stdout]    --> src/material.rs:144:12
[INFO] [stdout]     |
[INFO] [stdout] 144 |     pub fn make_lambertian(albedo: Colour) -> Material {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function is never used: `make_metal`
[INFO] [stdout]    --> src/material.rs:152:12
[INFO] [stdout]     |
[INFO] [stdout] 152 |     pub fn make_metal(albedo: Colour, fuzz: f32) -> Material {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function is never used: `make_dielectric`
[INFO] [stdout]    --> src/material.rs:160:12
[INFO] [stdout]     |
[INFO] [stdout] 160 |     pub fn make_dielectric(ref_idx: f32) -> Material {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function is never used: `bounding_box`
[INFO] [stdout]   --> src/primative.rs:45:12
[INFO] [stdout]    |
[INFO] [stdout] 45 |     pub fn bounding_box(
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct is never constructed: `SceneAABBDivision`
[INFO] [stdout]   --> src/scene2.rs:71:12
[INFO] [stdout]    |
[INFO] [stdout] 71 | pub struct SceneAABBDivision {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function is never used: `find_interaction`
[INFO] [stdout]   --> src/scene2.rs:78:8
[INFO] [stdout]    |
[INFO] [stdout] 78 |     fn find_interaction(&self, ray: &Ray) -> Option<PrimativeInteraction> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function is never used: `dot`
[INFO] [stdout]    --> src/vector.rs:256:8
[INFO] [stdout]     |
[INFO] [stdout] 256 | pub fn dot(l: &Vec3, r: &Vec3) -> f32 {
[INFO] [stdout]     |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function is never used: `cross`
[INFO] [stdout]    --> src/vector.rs:260:8
[INFO] [stdout]     |
[INFO] [stdout] 260 | pub fn cross(l: &Vec3, r: &Vec3) -> Vec3 {
[INFO] [stdout]     |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function is never used: `unit_vector`
[INFO] [stdout]    --> src/vector.rs:268:8
[INFO] [stdout]     |
[INFO] [stdout] 268 | pub fn unit_vector(vec : &Vec3) -> Vec3 {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function is never used: `colour`
[INFO] [stdout]   --> src/main.rs:46:4
[INFO] [stdout]    |
[INFO] [stdout] 46 | fn colour(ray : &Ray, world: &HitList, depth : i32) -> Colour {
[INFO] [stdout]    |    ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `NTHREADS` should have a snake case name
[INFO] [stdout]    --> src/main.rs:238:9
[INFO] [stdout]     |
[INFO] [stdout] 238 |     let NTHREADS = num_cpus::get() as u32;
[INFO] [stdout]     |         ^^^^^^^^ help: convert the identifier to snake case: `nthreads`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(non_snake_case)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `N` should have a snake case name
[INFO] [stdout]    --> src/shapes/cylinder.rs:139:17
[INFO] [stdout]     |
[INFO] [stdout] 139 |             let N = &cross(&dpdu, &dpdv).unit_vector();
[INFO] [stdout]     |                 ^ help: convert the identifier to snake case: `n`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 3 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 79 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished dev [unoptimized + debuginfo] target(s) in 32.12s
[INFO] running `Command { std: "docker" "inspect" "df23f1a5e59cebb23581be3651f724423ee56784f1ba1ddf4ecd6aa3073635ef", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "df23f1a5e59cebb23581be3651f724423ee56784f1ba1ddf4ecd6aa3073635ef", kill_on_drop: false }`
[INFO] [stdout] df23f1a5e59cebb23581be3651f724423ee56784f1ba1ddf4ecd6aa3073635ef
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:20528e8c29e4536546f0102ce88568b16ea7538393a33fcca951030f7af10457" "/opt/rustwide/cargo-home/bin/cargo" "+ff34b919075f35a1787659e9c448a34b06bab8de" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] e8c2abdf7178160b6ebf9143f0d5814265123ed90cf60fb6ba500ce58b720822
[INFO] [stderr] WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap.
[INFO] running `Command { std: "docker" "start" "-a" "e8c2abdf7178160b6ebf9143f0d5814265123ed90cf60fb6ba500ce58b720822", kill_on_drop: false }`
[INFO] [stderr]    Compiling rust_ray_tracing v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused imports: `Matrix4x4f`, `Normal3f`, `dot_vn`, `dot_vv`
[INFO] [stdout]  --> src/aabb.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 |     Normal3f,
[INFO] [stdout]   |     ^^^^^^^^
[INFO] [stdout] 3 |     Point3f,
[INFO] [stdout] 4 |     Matrix4x4f,
[INFO] [stdout]   |     ^^^^^^^^^^
[INFO] [stdout] 5 |     dot_vv,
[INFO] [stdout]   |     ^^^^^^
[INFO] [stdout] 6 |     dot_vn,
[INFO] [stdout]   |     ^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `rand::thread_rng`
[INFO] [stdout]   --> src/vector.rs:13:5
[INFO] [stdout]    |
[INFO] [stdout] 13 | use rand::thread_rng;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `rand::Rng`
[INFO] [stdout]   --> src/vector.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 14 | use rand::Rng;
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `dot_vv`
[INFO] [stdout]  --> src/shapes/cylinder.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 |     dot_vv,
[INFO] [stdout]   |     ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `solve_quadratic`
[INFO] [stdout]   --> src/shapes/sphere.rs:15:27
[INFO] [stdout]    |
[INFO] [stdout] 15 | use crate::shapes::base::{solve_quadratic, Hitable};
[INFO] [stdout]    |                           ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Matrix4x4f`
[INFO] [stdout]  --> src/shapes/base.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 |     Matrix4x4f,
[INFO] [stdout]   |     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Matrix4x4f`, `dot_vn`
[INFO] [stdout]   --> src/shapes/sphere2.rs:8:5
[INFO] [stdout]    |
[INFO] [stdout] 8  |     Matrix4x4f,
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 9  |     dot_vv,
[INFO] [stdout] 10 |     dot_vn,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `t_min`
[INFO] [stdout]   --> src/aabb.rs:28:13
[INFO] [stdout]    |
[INFO] [stdout] 28 |         let t_min = if t0 > t_min { t0 } else { t_min };
[INFO] [stdout]    |             ^^^^^ help: if this is intentional, prefix it with an underscore: `_t_min`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `t_min`
[INFO] [stdout]   --> src/aabb.rs:45:13
[INFO] [stdout]    |
[INFO] [stdout] 45 |         let t_min = if t0 > t_min { t0 } else { t_min };
[INFO] [stdout]    |             ^^^^^ help: if this is intentional, prefix it with an underscore: `_t_min`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `t_min`
[INFO] [stdout]   --> src/aabb.rs:62:13
[INFO] [stdout]    |
[INFO] [stdout] 62 |         let t_min = if t0 > t_min { t0 } else { t_min };
[INFO] [stdout]    |             ^^^^^ help: if this is intentional, prefix it with an underscore: `_t_min`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `phi` is never read
[INFO] [stdout]   --> src/shapes/cylinder.rs:78:17
[INFO] [stdout]    |
[INFO] [stdout] 78 |                 phi += 2.0 * f32::consts::PI;
[INFO] [stdout]    |                 ^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_assignments)]` on by default
[INFO] [stdout]    = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `time_0`
[INFO] [stdout]   --> src/shapes/sphere2.rs:78:9
[INFO] [stdout]    |
[INFO] [stdout] 78 |         time_0: f32,
[INFO] [stdout]    |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_time_0`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `time_1`
[INFO] [stdout]   --> src/shapes/sphere2.rs:79:9
[INFO] [stdout]    |
[INFO] [stdout] 79 |         time_1: f32,
[INFO] [stdout]    |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_time_1`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function is never used: `dot`
[INFO] [stdout]   --> src/core/normal.rs:55:8
[INFO] [stdout]    |
[INFO] [stdout] 55 | pub fn dot<T>(l: &Normal3T<T>, r: &Normal3T<T>) -> T
[INFO] [stdout]    |        ^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `N` should have a snake case name
[INFO] [stdout]    --> src/shapes/cylinder.rs:139:17
[INFO] [stdout]     |
[INFO] [stdout] 139 |             let N = &cross(&dpdu, &dpdv).unit_vector();
[INFO] [stdout]     |                 ^ help: convert the identifier to snake case: `n`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(non_snake_case)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 15 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Serialize`
[INFO] [stdout]  --> examples/cylinders.rs:4:13
[INFO] [stdout]   |
[INFO] [stdout] 4 | use serde::{Serialize};
[INFO] [stdout]   |             ^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Result`, `Value`
[INFO] [stdout]  --> examples/cylinders.rs:5:18
[INFO] [stdout]   |
[INFO] [stdout] 5 | use serde_json::{Result, Value};
[INFO] [stdout]   |                  ^^^^^^  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `rust_ray_tracing::shapes::base::Hitable`
[INFO] [stdout]   --> examples/cylinders.rs:17:5
[INFO] [stdout]    |
[INFO] [stdout] 17 | use rust_ray_tracing::shapes::base::Hitable;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `MovingSphere`, `Sphere`
[INFO] [stdout]   --> examples/cylinders.rs:19:40
[INFO] [stdout]    |
[INFO] [stdout] 19 | use rust_ray_tracing::shapes::sphere::{Sphere, MovingSphere};
[INFO] [stdout]    |                                        ^^^^^^  ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Serialize`
[INFO] [stdout]  --> examples/final_weekend.rs:6:13
[INFO] [stdout]   |
[INFO] [stdout] 6 | use serde::{Serialize};
[INFO] [stdout]   |             ^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Result`, `Value`
[INFO] [stdout]  --> examples/final_weekend.rs:7:18
[INFO] [stdout]   |
[INFO] [stdout] 7 | use serde_json::{Result, Value};
[INFO] [stdout]   |                  ^^^^^^  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `rust_ray_tracing::shapes::base::Hitable`
[INFO] [stdout]   --> examples/final_weekend.rs:19:5
[INFO] [stdout]    |
[INFO] [stdout] 19 | use rust_ray_tracing::shapes::base::Hitable;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Serialize`
[INFO] [stdout]  --> examples/3balls.rs:4:13
[INFO] [stdout]   |
[INFO] [stdout] 4 | use serde::{Serialize};
[INFO] [stdout]   |             ^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `rust_ray_tracing::shapes::cylinder::Cylinder`
[INFO] [stdout]   --> examples/final_weekend.rs:20:5
[INFO] [stdout]    |
[INFO] [stdout] 20 | use rust_ray_tracing::shapes::cylinder::Cylinder;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Result`, `Value`
[INFO] [stdout]  --> examples/3balls.rs:5:18
[INFO] [stdout]   |
[INFO] [stdout] 5 | use serde_json::{Result, Value};
[INFO] [stdout]   |                  ^^^^^^  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `rust_ray_tracing::shapes::base::Hitable`
[INFO] [stdout]   --> examples/3balls.rs:17:5
[INFO] [stdout]    |
[INFO] [stdout] 17 | use rust_ray_tracing::shapes::base::Hitable;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `rust_ray_tracing::shapes::cylinder::Cylinder`
[INFO] [stdout]   --> examples/3balls.rs:18:5
[INFO] [stdout]    |
[INFO] [stdout] 18 | use rust_ray_tracing::shapes::cylinder::Cylinder;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `MovingSphere`
[INFO] [stdout]   --> examples/3balls.rs:19:48
[INFO] [stdout]    |
[INFO] [stdout] 19 | use rust_ray_tracing::shapes::sphere::{Sphere, MovingSphere};
[INFO] [stdout]    |                                                ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Read`
[INFO] [stdout]  --> src/bin/rust_ray_assemble.rs:1:21
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::io::{self, Read};
[INFO] [stdout]   |                     ^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: comparison is useless due to type limits
[INFO] [stdout]   --> src/bin/rust_ray_assemble.rs:45:12
[INFO] [stdout]    |
[INFO] [stdout] 45 |         if x_coord < 0 || x_coord >= n_x || y_coord < 0 || y_coord >= n_y {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_comparisons)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: comparison is useless due to type limits
[INFO] [stdout]   --> src/bin/rust_ray_assemble.rs:45:45
[INFO] [stdout]    |
[INFO] [stdout] 45 |         if x_coord < 0 || x_coord >= n_x || y_coord < 0 || y_coord >= n_y {
[INFO] [stdout]    |                                             ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Serialize`
[INFO] [stdout]  --> examples/blue_red.rs:4:13
[INFO] [stdout]   |
[INFO] [stdout] 4 | use serde::{Serialize};
[INFO] [stdout]   |             ^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Result`, `Value`
[INFO] [stdout]  --> examples/blue_red.rs:5:18
[INFO] [stdout]   |
[INFO] [stdout] 5 | use serde_json::{Result, Value};
[INFO] [stdout]   |                  ^^^^^^  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `rust_ray_tracing::shapes::base::Hitable`
[INFO] [stdout]   --> examples/blue_red.rs:17:5
[INFO] [stdout]    |
[INFO] [stdout] 17 | use rust_ray_tracing::shapes::base::Hitable;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `rust_ray_tracing::shapes::cylinder::Cylinder`
[INFO] [stdout]   --> examples/blue_red.rs:18:5
[INFO] [stdout]    |
[INFO] [stdout] 18 | use rust_ray_tracing::shapes::cylinder::Cylinder;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `MovingSphere`
[INFO] [stdout]   --> examples/blue_red.rs:19:48
[INFO] [stdout]    |
[INFO] [stdout] 19 | use rust_ray_tracing::shapes::sphere::{Sphere, MovingSphere};
[INFO] [stdout]    |                                                ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Matrix4x4f`, `Normal3f`, `dot_vn`, `dot_vv`
[INFO] [stdout]  --> src/aabb.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 |     Normal3f,
[INFO] [stdout]   |     ^^^^^^^^
[INFO] [stdout] 3 |     Point3f,
[INFO] [stdout] 4 |     Matrix4x4f,
[INFO] [stdout]   |     ^^^^^^^^^^
[INFO] [stdout] 5 |     dot_vv,
[INFO] [stdout]   |     ^^^^^^
[INFO] [stdout] 6 |     dot_vn,
[INFO] [stdout]   |     ^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `rand::thread_rng`
[INFO] [stdout]   --> src/vector.rs:13:5
[INFO] [stdout]    |
[INFO] [stdout] 13 | use rand::thread_rng;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `rand::Rng`
[INFO] [stdout]   --> src/vector.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 14 | use rand::Rng;
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `dot_vv`
[INFO] [stdout]  --> src/shapes/cylinder.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 |     dot_vv,
[INFO] [stdout]   |     ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `solve_quadratic`
[INFO] [stdout]   --> src/shapes/sphere.rs:15:27
[INFO] [stdout]    |
[INFO] [stdout] 15 | use crate::shapes::base::{solve_quadratic, Hitable};
[INFO] [stdout]    |                           ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Matrix4x4f`
[INFO] [stdout]  --> src/shapes/base.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 |     Matrix4x4f,
[INFO] [stdout]   |     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Matrix4x4f`, `dot_vn`
[INFO] [stdout]   --> src/shapes/sphere2.rs:8:5
[INFO] [stdout]    |
[INFO] [stdout] 8  |     Matrix4x4f,
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 9  |     dot_vv,
[INFO] [stdout] 10 |     dot_vn,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Read`, `self`
[INFO] [stdout]  --> src/main.rs:2:15
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::io::{self, Read};
[INFO] [stdout]   |               ^^^^  ^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Matrix4x4f`, `Normal3f`, `dot_vn`, `dot_vv`
[INFO] [stdout]  --> src/aabb.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 |     Normal3f,
[INFO] [stdout]   |     ^^^^^^^^
[INFO] [stdout] 3 |     Point3f,
[INFO] [stdout] 4 |     Matrix4x4f,
[INFO] [stdout]   |     ^^^^^^^^^^
[INFO] [stdout] 5 |     dot_vv,
[INFO] [stdout]   |     ^^^^^^
[INFO] [stdout] 6 |     dot_vn,
[INFO] [stdout]   |     ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::core::Point3f`
[INFO] [stdout]  --> src/bvh_tree.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use crate::core::Point3f;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Deserialize`, `Serialize`
[INFO] [stdout]  --> src/material2.rs:3:13
[INFO] [stdout]   |
[INFO] [stdout] 3 | use serde::{Deserialize, Serialize};
[INFO] [stdout]   |             ^^^^^^^^^^^  ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Normal3f`, `Point3f`
[INFO] [stdout]   --> src/material2.rs:8:5
[INFO] [stdout]    |
[INFO] [stdout] 8  |     Point3f,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 9  |     Vector3f,
[INFO] [stdout] 10 |     Normal3f,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::aabb::AABB`
[INFO] [stdout]  --> src/scene2.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::aabb::AABB;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Normal3f`, `Point3f`
[INFO] [stdout]  --> src/scene2.rs:5:19
[INFO] [stdout]   |
[INFO] [stdout] 5 | use crate::core::{Point3f, Normal3f, Colour};
[INFO] [stdout]   |                   ^^^^^^^  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Normal3f`, `gen_rotate_x`, `gen_rotate_y`, `gen_rotate_z`
[INFO] [stdout]   --> src/scene_generator.rs:9:5
[INFO] [stdout]    |
[INFO] [stdout] 9  |     Normal3f,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 14 |     gen_rotate_x,
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] 15 |     gen_rotate_y,
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] 16 |     gen_rotate_z,
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `dot_vv`
[INFO] [stdout]  --> src/shapes/cylinder.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 |     dot_vv,
[INFO] [stdout]   |     ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `solve_quadratic`
[INFO] [stdout]   --> src/shapes/sphere.rs:15:27
[INFO] [stdout]    |
[INFO] [stdout] 15 | use crate::shapes::base::{solve_quadratic, Hitable};
[INFO] [stdout]    |                           ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Matrix4x4f`
[INFO] [stdout]  --> src/shapes/base.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 |     Matrix4x4f,
[INFO] [stdout]   |     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Matrix4x4f`, `dot_vn`
[INFO] [stdout]   --> src/shapes/sphere2.rs:8:5
[INFO] [stdout]    |
[INFO] [stdout] 8  |     Matrix4x4f,
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 9  |     dot_vv,
[INFO] [stdout] 10 |     dot_vn,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `rand::thread_rng`
[INFO] [stdout]   --> src/vector.rs:13:5
[INFO] [stdout]    |
[INFO] [stdout] 13 | use rand::thread_rng;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `rand::Rng`
[INFO] [stdout]   --> src/vector.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 14 | use rand::Rng;
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Normal3f`
[INFO] [stdout]  --> src/textures/base.rs:1:28
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::core::{Point3f, Normal3f, Colour};
[INFO] [stdout]   |                            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Normal3f`
[INFO] [stdout]  --> src/textures/solid_colour.rs:1:28
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::core::{Point3f, Normal3f, Colour};
[INFO] [stdout]   |                            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Scene`
[INFO] [stdout]   --> src/main.rs:42:21
[INFO] [stdout]    |
[INFO] [stdout] 42 | use crate::scene2::{Scene, calculate_colour};
[INFO] [stdout]    |                     ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0061]: this function takes 3 arguments but 5 arguments were supplied
[INFO] [stdout]    --> src/shapes/sphere2.rs:139:36
[INFO] [stdout]     |
[INFO] [stdout] 139 |           let result_option = sphere.collide(
[INFO] [stdout]     |                                      ^^^^^^^ expected 3 arguments
[INFO] [stdout] 140 | /             Ray {
[INFO] [stdout] 141 | |                 a: Point3f {
[INFO] [stdout] 142 | |                     x:  0.0,
[INFO] [stdout] 143 | |                     y:  0.0,
[INFO] [stdout] ...   |
[INFO] [stdout] 151 | |                 time: 0.0,
[INFO] [stdout] 152 | |             },
[INFO] [stdout]     | |_____________-
[INFO] [stdout] 153 |               indentity(),
[INFO] [stdout]     |               -----------
[INFO] [stdout] 154 |               indentity(),
[INFO] [stdout]     |               -----------
[INFO] [stdout] 155 |               0.0,
[INFO] [stdout]     |               ---
[INFO] [stdout] 156 |               20.0,
[INFO] [stdout]     |               ---- supplied 5 arguments
[INFO] [stdout]     |
[INFO] [stdout] note: associated function defined here
[INFO] [stdout]    --> src/shapes/base.rs:32:8
[INFO] [stdout]     |
[INFO] [stdout] 32  |     fn collide(
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0061]: this function takes 3 arguments but 5 arguments were supplied
[INFO] [stdout]    --> src/shapes/sphere2.rs:173:36
[INFO] [stdout]     |
[INFO] [stdout] 173 |           let result_option = sphere.collide(
[INFO] [stdout]     |                                      ^^^^^^^ expected 3 arguments
[INFO] [stdout] 174 | /             Ray {
[INFO] [stdout] 175 | |                 a: Point3f {
[INFO] [stdout] 176 | |                     x:  0.0,
[INFO] [stdout] 177 | |                     y:  1.0,
[INFO] [stdout] ...   |
[INFO] [stdout] 185 | |                 time: 0.0,
[INFO] [stdout] 186 | |             },
[INFO] [stdout]     | |_____________-
[INFO] [stdout] 187 |               indentity(),
[INFO] [stdout]     |               -----------
[INFO] [stdout] 188 |               indentity(),
[INFO] [stdout]     |               -----------
[INFO] [stdout] 189 |               4.999,
[INFO] [stdout]     |               -----
[INFO] [stdout] 190 |               5.001,
[INFO] [stdout]     |               ----- supplied 5 arguments
[INFO] [stdout]     |
[INFO] [stdout] note: associated function defined here
[INFO] [stdout]    --> src/shapes/base.rs:32:8
[INFO] [stdout]     |
[INFO] [stdout] 32  |     fn collide(
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0061]: this function takes 3 arguments but 5 arguments were supplied
[INFO] [stdout]    --> src/shapes/sphere2.rs:205:36
[INFO] [stdout]     |
[INFO] [stdout] 205 |           let result_option = sphere.collide(
[INFO] [stdout]     |                                      ^^^^^^^ expected 3 arguments
[INFO] [stdout] 206 | /             Ray {
[INFO] [stdout] 207 | |                 a: Point3f {
[INFO] [stdout] 208 | |                     x:  0.0,
[INFO] [stdout] 209 | |                     y:  2.0,
[INFO] [stdout] ...   |
[INFO] [stdout] 217 | |                 time: 0.0,
[INFO] [stdout] 218 | |             },
[INFO] [stdout]     | |_____________-
[INFO] [stdout] 219 |               indentity(),
[INFO] [stdout]     |               -----------
[INFO] [stdout] 220 |               indentity(),
[INFO] [stdout]     |               -----------
[INFO] [stdout] 221 |               0.0,
[INFO] [stdout]     |               ---
[INFO] [stdout] 222 |               20.0,
[INFO] [stdout]     |               ---- supplied 5 arguments
[INFO] [stdout]     |
[INFO] [stdout] note: associated function defined here
[INFO] [stdout]    --> src/shapes/base.rs:32:8
[INFO] [stdout]     |
[INFO] [stdout] 32  |     fn collide(
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0061]: this function takes 3 arguments but 5 arguments were supplied
[INFO] [stdout]    --> src/shapes/sphere2.rs:239:36
[INFO] [stdout]     |
[INFO] [stdout] 239 |           let result_option = sphere.collide(
[INFO] [stdout]     |                                      ^^^^^^^ expected 3 arguments
[INFO] [stdout] 240 | /             Ray {
[INFO] [stdout] 241 | |                 a: Point3f {
[INFO] [stdout] 242 | |                     x:  0.0,
[INFO] [stdout] 243 | |                     y:  0.0,
[INFO] [stdout] ...   |
[INFO] [stdout] 251 | |                 time: 0.0,
[INFO] [stdout] 252 | |             },
[INFO] [stdout]     | |_____________-
[INFO] [stdout] 253 |               indentity(),
[INFO] [stdout]     |               -----------
[INFO] [stdout] 254 |               indentity(),
[INFO] [stdout]     |               -----------
[INFO] [stdout] 255 |               0.0,
[INFO] [stdout]     |               ---
[INFO] [stdout] 256 |               20.0,
[INFO] [stdout]     |               ---- supplied 5 arguments
[INFO] [stdout]     |
[INFO] [stdout] note: associated function defined here
[INFO] [stdout]    --> src/shapes/base.rs:32:8
[INFO] [stdout]     |
[INFO] [stdout] 32  |     fn collide(
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0061]: this function takes 3 arguments but 5 arguments were supplied
[INFO] [stdout]    --> src/shapes/sphere2.rs:309:36
[INFO] [stdout]     |
[INFO] [stdout] 309 |         let result_option = sphere.collide(
[INFO] [stdout]     |                                    ^^^^^^^ expected 3 arguments
[INFO] [stdout] 310 |             ray,
[INFO] [stdout]     |             ---
[INFO] [stdout] 311 |             transform.m,
[INFO] [stdout]     |             -----------
[INFO] [stdout] 312 |             transform.m_inv,
[INFO] [stdout]     |             ---------------
[INFO] [stdout] 313 |             original_t_min,
[INFO] [stdout]     |             --------------
[INFO] [stdout] 314 |             original_t_max,
[INFO] [stdout]     |             -------------- supplied 5 arguments
[INFO] [stdout]     |
[INFO] [stdout] note: associated function defined here
[INFO] [stdout]    --> src/shapes/base.rs:32:8
[INFO] [stdout]     |
[INFO] [stdout] 32  |     fn collide(
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0061]: this function takes 3 arguments but 5 arguments were supplied
[INFO] [stdout]    --> src/shapes/sphere2.rs:335:36
[INFO] [stdout]     |
[INFO] [stdout] 335 |           let result_option = sphere.collide(
[INFO] [stdout]     |                                      ^^^^^^^ expected 3 arguments
[INFO] [stdout] 336 | /             Ray {
[INFO] [stdout] 337 | |                 a: Point3f {
[INFO] [stdout] 338 | |                     x:  0.0,
[INFO] [stdout] 339 | |                     y:  0.0,
[INFO] [stdout] ...   |
[INFO] [stdout] 347 | |                 time: 0.0,
[INFO] [stdout] 348 | |             },
[INFO] [stdout]     | |_____________-
[INFO] [stdout] 349 |               transform.m,
[INFO] [stdout]     |               -----------
[INFO] [stdout] 350 |               transform.m_inv,
[INFO] [stdout]     |               ---------------
[INFO] [stdout] 351 |               0.0,
[INFO] [stdout]     |               ---
[INFO] [stdout] 352 |               20.0,
[INFO] [stdout]     |               ---- supplied 5 arguments
[INFO] [stdout]     |
[INFO] [stdout] note: associated function defined here
[INFO] [stdout]    --> src/shapes/base.rs:32:8
[INFO] [stdout]     |
[INFO] [stdout] 32  |     fn collide(
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0061]: this function takes 3 arguments but 5 arguments were supplied
[INFO] [stdout]    --> src/shapes/sphere2.rs:373:36
[INFO] [stdout]     |
[INFO] [stdout] 373 |           let result_option = sphere.collide(
[INFO] [stdout]     |                                      ^^^^^^^ expected 3 arguments
[INFO] [stdout] 374 | /             Ray {
[INFO] [stdout] 375 | |                 a: Point3f {
[INFO] [stdout] 376 | |                     x:  -5.0,
[INFO] [stdout] 377 | |                     y:   0.0,
[INFO] [stdout] ...   |
[INFO] [stdout] 385 | |                 time: 0.0,
[INFO] [stdout] 386 | |             },
[INFO] [stdout]     | |_____________-
[INFO] [stdout] 387 |               transform.m,
[INFO] [stdout]     |               -----------
[INFO] [stdout] 388 |               transform.m_inv,
[INFO] [stdout]     |               ---------------
[INFO] [stdout] 389 |               0.0,
[INFO] [stdout]     |               ---
[INFO] [stdout] 390 |               20.0,
[INFO] [stdout]     |               ---- supplied 5 arguments
[INFO] [stdout]     |
[INFO] [stdout] note: associated function defined here
[INFO] [stdout]    --> src/shapes/base.rs:32:8
[INFO] [stdout]     |
[INFO] [stdout] 32  |     fn collide(
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0061]: this function takes 3 arguments but 5 arguments were supplied
[INFO] [stdout]    --> src/shapes/sphere2.rs:405:36
[INFO] [stdout]     |
[INFO] [stdout] 405 |           let result_option = sphere.collide(
[INFO] [stdout]     |                                      ^^^^^^^ expected 3 arguments
[INFO] [stdout] 406 | /             Ray {
[INFO] [stdout] 407 | |                 a: Point3f {
[INFO] [stdout] 408 | |                     x:  0.0,
[INFO] [stdout] 409 | |                     y:  0.0,
[INFO] [stdout] ...   |
[INFO] [stdout] 417 | |                 time: 0.0,
[INFO] [stdout] 418 | |             },
[INFO] [stdout]     | |_____________-
[INFO] [stdout] 419 |               transform.m,
[INFO] [stdout]     |               -----------
[INFO] [stdout] 420 |               transform.m_inv,
[INFO] [stdout]     |               ---------------
[INFO] [stdout] 421 |               0.0,
[INFO] [stdout]     |               ---
[INFO] [stdout] 422 |               20.0,
[INFO] [stdout]     |               ---- supplied 5 arguments
[INFO] [stdout]     |
[INFO] [stdout] note: associated function defined here
[INFO] [stdout]    --> src/shapes/base.rs:32:8
[INFO] [stdout]     |
[INFO] [stdout] 32  |     fn collide(
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0061]: this function takes 3 arguments but 5 arguments were supplied
[INFO] [stdout]    --> src/shapes/sphere2.rs:443:36
[INFO] [stdout]     |
[INFO] [stdout] 443 |           let result_option = sphere.collide(
[INFO] [stdout]     |                                      ^^^^^^^ expected 3 arguments
[INFO] [stdout] 444 | /             Ray {
[INFO] [stdout] 445 | |                 a: Point3f {
[INFO] [stdout] 446 | |                     x: 0.0,
[INFO] [stdout] 447 | |                     y: 0.0,
[INFO] [stdout] ...   |
[INFO] [stdout] 455 | |                 time: 0.0,
[INFO] [stdout] 456 | |             },
[INFO] [stdout]     | |_____________-
[INFO] [stdout] 457 |               transform.m,
[INFO] [stdout]     |               -----------
[INFO] [stdout] 458 |               transform.m_inv,
[INFO] [stdout]     |               ---------------
[INFO] [stdout] 459 |               0.0,
[INFO] [stdout]     |               ---
[INFO] [stdout] 460 |               50.0,
[INFO] [stdout]     |               ---- supplied 5 arguments
[INFO] [stdout]     |
[INFO] [stdout] note: associated function defined here
[INFO] [stdout]    --> src/shapes/base.rs:32:8
[INFO] [stdout]     |
[INFO] [stdout] 32  |     fn collide(
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0061]: this function takes 3 arguments but 5 arguments were supplied
[INFO] [stdout]    --> src/shapes/sphere2.rs:494:36
[INFO] [stdout]     |
[INFO] [stdout] 494 |           let result_option = sphere.collide(
[INFO] [stdout]     |                                      ^^^^^^^ expected 3 arguments
[INFO] [stdout] 495 | /             Ray {
[INFO] [stdout] 496 | |                 a: Point3f {
[INFO] [stdout] 497 | |                     x: 0.0,
[INFO] [stdout] 498 | |                     y: 0.0,
[INFO] [stdout] ...   |
[INFO] [stdout] 502 | |                 time: 0.0,
[INFO] [stdout] 503 | |             },
[INFO] [stdout]     | |_____________-
[INFO] [stdout] 504 |               transform.m,
[INFO] [stdout]     |               -----------
[INFO] [stdout] 505 |               transform.m_inv,
[INFO] [stdout]     |               ---------------
[INFO] [stdout] 506 |               t_val * 0.99,
[INFO] [stdout]     |               ------------
[INFO] [stdout] 507 |               t_val * 1.01,
[INFO] [stdout]     |               ------------ supplied 5 arguments
[INFO] [stdout]     |
[INFO] [stdout] note: associated function defined here
[INFO] [stdout]    --> src/shapes/base.rs:32:8
[INFO] [stdout]     |
[INFO] [stdout] 32  |     fn collide(
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 10 previous errors; 7 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0061`.
[INFO] [stdout] 
[INFO] [stdout] warning: 3 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `rust_ray_tracing`
[INFO] [stderr] 
[INFO] [stderr] To learn more, run the command again with --verbose.
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/primative.rs:174:45
[INFO] [stdout]     |
[INFO] [stdout] 174 |         let interaction = primative.collide(ray, 0.0, 10.0).unwrap();
[INFO] [stdout]     |                                             ^^^
[INFO] [stdout]     |                                             |
[INFO] [stdout]     |                                             expected `&Ray`, found struct `Ray`
[INFO] [stdout]     |                                             help: consider borrowing here: `&ray`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/primative.rs:208:60
[INFO] [stdout]     |
[INFO] [stdout] 208 |                 let interaction_result = primative.collide(ray, 0.0, 10.0);
[INFO] [stdout]     |                                                            ^^^
[INFO] [stdout]     |                                                            |
[INFO] [stdout]     |                                                            expected `&Ray`, found struct `Ray`
[INFO] [stdout]     |                                                            help: consider borrowing here: `&ray`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/primative.rs:267:60
[INFO] [stdout]     |
[INFO] [stdout] 267 |                 let interaction_result = primative.collide(ray, 0.0, 10.0);
[INFO] [stdout]     |                                                            ^^^
[INFO] [stdout]     |                                                            |
[INFO] [stdout]     |                                                            expected `&Ray`, found struct `Ray`
[INFO] [stdout]     |                                                            help: consider borrowing here: `&ray`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/primative.rs:332:60
[INFO] [stdout]     |
[INFO] [stdout] 332 |                 let interaction_result = primative.collide(ray, 0.0, 10.0);
[INFO] [stdout]     |                                                            ^^^
[INFO] [stdout]     |                                                            |
[INFO] [stdout]     |                                                            expected `&Ray`, found struct `Ray`
[INFO] [stdout]     |                                                            help: consider borrowing here: `&ray`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0061]: this function takes 3 arguments but 5 arguments were supplied
[INFO] [stdout]    --> src/shapes/sphere2.rs:139:36
[INFO] [stdout]     |
[INFO] [stdout] 139 |           let result_option = sphere.collide(
[INFO] [stdout]     |                                      ^^^^^^^ expected 3 arguments
[INFO] [stdout] 140 | /             Ray {
[INFO] [stdout] 141 | |                 a: Point3f {
[INFO] [stdout] 142 | |                     x:  0.0,
[INFO] [stdout] 143 | |                     y:  0.0,
[INFO] [stdout] ...   |
[INFO] [stdout] 151 | |                 time: 0.0,
[INFO] [stdout] 152 | |             },
[INFO] [stdout]     | |_____________-
[INFO] [stdout] 153 |               indentity(),
[INFO] [stdout]     |               -----------
[INFO] [stdout] 154 |               indentity(),
[INFO] [stdout]     |               -----------
[INFO] [stdout] 155 |               0.0,
[INFO] [stdout]     |               ---
[INFO] [stdout] 156 |               20.0,
[INFO] [stdout]     |               ---- supplied 5 arguments
[INFO] [stdout]     |
[INFO] [stdout] note: associated function defined here
[INFO] [stdout]    --> src/shapes/base.rs:32:8
[INFO] [stdout]     |
[INFO] [stdout] 32  |     fn collide(
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0061]: this function takes 3 arguments but 5 arguments were supplied
[INFO] [stdout]    --> src/shapes/sphere2.rs:173:36
[INFO] [stdout]     |
[INFO] [stdout] 173 |           let result_option = sphere.collide(
[INFO] [stdout]     |                                      ^^^^^^^ expected 3 arguments
[INFO] [stdout] 174 | /             Ray {
[INFO] [stdout] 175 | |                 a: Point3f {
[INFO] [stdout] 176 | |                     x:  0.0,
[INFO] [stdout] 177 | |                     y:  1.0,
[INFO] [stdout] ...   |
[INFO] [stdout] 185 | |                 time: 0.0,
[INFO] [stdout] 186 | |             },
[INFO] [stdout]     | |_____________-
[INFO] [stdout] 187 |               indentity(),
[INFO] [stdout]     |               -----------
[INFO] [stdout] 188 |               indentity(),
[INFO] [stdout]     |               -----------
[INFO] [stdout] 189 |               4.999,
[INFO] [stdout]     |               -----
[INFO] [stdout] 190 |               5.001,
[INFO] [stdout]     |               ----- supplied 5 arguments
[INFO] [stdout]     |
[INFO] [stdout] note: associated function defined here
[INFO] [stdout]    --> src/shapes/base.rs:32:8
[INFO] [stdout]     |
[INFO] [stdout] 32  |     fn collide(
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0061]: this function takes 3 arguments but 5 arguments were supplied
[INFO] [stdout]    --> src/shapes/sphere2.rs:205:36
[INFO] [stdout]     |
[INFO] [stdout] 205 |           let result_option = sphere.collide(
[INFO] [stdout]     |                                      ^^^^^^^ expected 3 arguments
[INFO] [stdout] 206 | /             Ray {
[INFO] [stdout] 207 | |                 a: Point3f {
[INFO] [stdout] 208 | |                     x:  0.0,
[INFO] [stdout] 209 | |                     y:  2.0,
[INFO] [stdout] ...   |
[INFO] [stdout] 217 | |                 time: 0.0,
[INFO] [stdout] 218 | |             },
[INFO] [stdout]     | |_____________-
[INFO] [stdout] 219 |               indentity(),
[INFO] [stdout]     |               -----------
[INFO] [stdout] 220 |               indentity(),
[INFO] [stdout]     |               -----------
[INFO] [stdout] 221 |               0.0,
[INFO] [stdout]     |               ---
[INFO] [stdout] 222 |               20.0,
[INFO] [stdout]     |               ---- supplied 5 arguments
[INFO] [stdout]     |
[INFO] [stdout] note: associated function defined here
[INFO] [stdout]    --> src/shapes/base.rs:32:8
[INFO] [stdout]     |
[INFO] [stdout] 32  |     fn collide(
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0061]: this function takes 3 arguments but 5 arguments were supplied
[INFO] [stdout]    --> src/shapes/sphere2.rs:239:36
[INFO] [stdout]     |
[INFO] [stdout] 239 |           let result_option = sphere.collide(
[INFO] [stdout]     |                                      ^^^^^^^ expected 3 arguments
[INFO] [stdout] 240 | /             Ray {
[INFO] [stdout] 241 | |                 a: Point3f {
[INFO] [stdout] 242 | |                     x:  0.0,
[INFO] [stdout] 243 | |                     y:  0.0,
[INFO] [stdout] ...   |
[INFO] [stdout] 251 | |                 time: 0.0,
[INFO] [stdout] 252 | |             },
[INFO] [stdout]     | |_____________-
[INFO] [stdout] 253 |               indentity(),
[INFO] [stdout]     |               -----------
[INFO] [stdout] 254 |               indentity(),
[INFO] [stdout]     |               -----------
[INFO] [stdout] 255 |               0.0,
[INFO] [stdout]     |               ---
[INFO] [stdout] 256 |               20.0,
[INFO] [stdout]     |               ---- supplied 5 arguments
[INFO] [stdout]     |
[INFO] [stdout] note: associated function defined here
[INFO] [stdout]    --> src/shapes/base.rs:32:8
[INFO] [stdout]     |
[INFO] [stdout] 32  |     fn collide(
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0061]: this function takes 3 arguments but 5 arguments were supplied
[INFO] [stdout]    --> src/shapes/sphere2.rs:309:36
[INFO] [stdout]     |
[INFO] [stdout] 309 |         let result_option = sphere.collide(
[INFO] [stdout]     |                                    ^^^^^^^ expected 3 arguments
[INFO] [stdout] 310 |             ray,
[INFO] [stdout]     |             ---
[INFO] [stdout] 311 |             transform.m,
[INFO] [stdout]     |             -----------
[INFO] [stdout] 312 |             transform.m_inv,
[INFO] [stdout]     |             ---------------
[INFO] [stdout] 313 |             original_t_min,
[INFO] [stdout]     |             --------------
[INFO] [stdout] 314 |             original_t_max,
[INFO] [stdout]     |             -------------- supplied 5 arguments
[INFO] [stdout]     |
[INFO] [stdout] note: associated function defined here
[INFO] [stdout]    --> src/shapes/base.rs:32:8
[INFO] [stdout]     |
[INFO] [stdout] 32  |     fn collide(
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0061]: this function takes 3 arguments but 5 arguments were supplied
[INFO] [stdout]    --> src/shapes/sphere2.rs:335:36
[INFO] [stdout]     |
[INFO] [stdout] 335 |           let result_option = sphere.collide(
[INFO] [stdout]     |                                      ^^^^^^^ expected 3 arguments
[INFO] [stdout] 336 | /             Ray {
[INFO] [stdout] 337 | |                 a: Point3f {
[INFO] [stdout] 338 | |                     x:  0.0,
[INFO] [stdout] 339 | |                     y:  0.0,
[INFO] [stdout] ...   |
[INFO] [stdout] 347 | |                 time: 0.0,
[INFO] [stdout] 348 | |             },
[INFO] [stdout]     | |_____________-
[INFO] [stdout] 349 |               transform.m,
[INFO] [stdout]     |               -----------
[INFO] [stdout] 350 |               transform.m_inv,
[INFO] [stdout]     |               ---------------
[INFO] [stdout] 351 |               0.0,
[INFO] [stdout]     |               ---
[INFO] [stdout] 352 |               20.0,
[INFO] [stdout]     |               ---- supplied 5 arguments
[INFO] [stdout]     |
[INFO] [stdout] note: associated function defined here
[INFO] [stdout]    --> src/shapes/base.rs:32:8
[INFO] [stdout]     |
[INFO] [stdout] 32  |     fn collide(
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0061]: this function takes 3 arguments but 5 arguments were supplied
[INFO] [stdout]    --> src/shapes/sphere2.rs:373:36
[INFO] [stdout]     |
[INFO] [stdout] 373 |           let result_option = sphere.collide(
[INFO] [stdout]     |                                      ^^^^^^^ expected 3 arguments
[INFO] [stdout] 374 | /             Ray {
[INFO] [stdout] 375 | |                 a: Point3f {
[INFO] [stdout] 376 | |                     x:  -5.0,
[INFO] [stdout] 377 | |                     y:   0.0,
[INFO] [stdout] ...   |
[INFO] [stdout] 385 | |                 time: 0.0,
[INFO] [stdout] 386 | |             },
[INFO] [stdout]     | |_____________-
[INFO] [stdout] 387 |               transform.m,
[INFO] [stdout]     |               -----------
[INFO] [stdout] 388 |               transform.m_inv,
[INFO] [stdout]     |               ---------------
[INFO] [stdout] 389 |               0.0,
[INFO] [stdout]     |               ---
[INFO] [stdout] 390 |               20.0,
[INFO] [stdout]     |               ---- supplied 5 arguments
[INFO] [stdout]     |
[INFO] [stdout] note: associated function defined here
[INFO] [stdout]    --> src/shapes/base.rs:32:8
[INFO] [stdout]     |
[INFO] [stdout] 32  |     fn collide(
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0061]: this function takes 3 arguments but 5 arguments were supplied
[INFO] [stdout]    --> src/shapes/sphere2.rs:405:36
[INFO] [stdout]     |
[INFO] [stdout] 405 |           let result_option = sphere.collide(
[INFO] [stdout]     |                                      ^^^^^^^ expected 3 arguments
[INFO] [stdout] 406 | /             Ray {
[INFO] [stdout] 407 | |                 a: Point3f {
[INFO] [stdout] 408 | |                     x:  0.0,
[INFO] [stdout] 409 | |                     y:  0.0,
[INFO] [stdout] ...   |
[INFO] [stdout] 417 | |                 time: 0.0,
[INFO] [stdout] 418 | |             },
[INFO] [stdout]     | |_____________-
[INFO] [stdout] 419 |               transform.m,
[INFO] [stdout]     |               -----------
[INFO] [stdout] 420 |               transform.m_inv,
[INFO] [stdout]     |               ---------------
[INFO] [stdout] 421 |               0.0,
[INFO] [stdout]     |               ---
[INFO] [stdout] 422 |               20.0,
[INFO] [stdout]     |               ---- supplied 5 arguments
[INFO] [stdout]     |
[INFO] [stdout] note: associated function defined here
[INFO] [stdout]    --> src/shapes/base.rs:32:8
[INFO] [stdout]     |
[INFO] [stdout] 32  |     fn collide(
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0061]: this function takes 3 arguments but 5 arguments were supplied
[INFO] [stdout]    --> src/shapes/sphere2.rs:443:36
[INFO] [stdout]     |
[INFO] [stdout] 443 |           let result_option = sphere.collide(
[INFO] [stdout]     |                                      ^^^^^^^ expected 3 arguments
[INFO] [stdout] 444 | /             Ray {
[INFO] [stdout] 445 | |                 a: Point3f {
[INFO] [stdout] 446 | |                     x: 0.0,
[INFO] [stdout] 447 | |                     y: 0.0,
[INFO] [stdout] ...   |
[INFO] [stdout] 455 | |                 time: 0.0,
[INFO] [stdout] 456 | |             },
[INFO] [stdout]     | |_____________-
[INFO] [stdout] 457 |               transform.m,
[INFO] [stdout]     |               -----------
[INFO] [stdout] 458 |               transform.m_inv,
[INFO] [stdout]     |               ---------------
[INFO] [stdout] 459 |               0.0,
[INFO] [stdout]     |               ---
[INFO] [stdout] 460 |               50.0,
[INFO] [stdout]     |               ---- supplied 5 arguments
[INFO] [stdout]     |
[INFO] [stdout] note: associated function defined here
[INFO] [stdout]    --> src/shapes/base.rs:32:8
[INFO] [stdout]     |
[INFO] [stdout] 32  |     fn collide(
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0061]: this function takes 3 arguments but 5 arguments were supplied
[INFO] [stdout]    --> src/shapes/sphere2.rs:494:36
[INFO] [stdout]     |
[INFO] [stdout] 494 |           let result_option = sphere.collide(
[INFO] [stdout]     |                                      ^^^^^^^ expected 3 arguments
[INFO] [stdout] 495 | /             Ray {
[INFO] [stdout] 496 | |                 a: Point3f {
[INFO] [stdout] 497 | |                     x: 0.0,
[INFO] [stdout] 498 | |                     y: 0.0,
[INFO] [stdout] ...   |
[INFO] [stdout] 502 | |                 time: 0.0,
[INFO] [stdout] 503 | |             },
[INFO] [stdout]     | |_____________-
[INFO] [stdout] 504 |               transform.m,
[INFO] [stdout]     |               -----------
[INFO] [stdout] 505 |               transform.m_inv,
[INFO] [stdout]     |               ---------------
[INFO] [stdout] 506 |               t_val * 0.99,
[INFO] [stdout]     |               ------------
[INFO] [stdout] 507 |               t_val * 1.01,
[INFO] [stdout]     |               ------------ supplied 5 arguments
[INFO] [stdout]     |
[INFO] [stdout] note: associated function defined here
[INFO] [stdout]    --> src/shapes/base.rs:32:8
[INFO] [stdout]     |
[INFO] [stdout] 32  |     fn collide(
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ShapeTrait`
[INFO] [stdout]  --> src/bvh_tree.rs:8:40
[INFO] [stdout]   |
[INFO] [stdout] 8 | use crate::shapes::base::{Interaction, ShapeTrait};
[INFO] [stdout]   |                                        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ShapeTrait`
[INFO] [stdout]   --> src/primative.rs:89:44
[INFO] [stdout]    |
[INFO] [stdout] 89 |     use crate::shapes::base::{Interaction, ShapeTrait};
[INFO] [stdout]    |                                            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ShapeTrait`
[INFO] [stdout]  --> src/scene2.rs:3:40
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::shapes::base::{Interaction, ShapeTrait};
[INFO] [stdout]   |                                        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 14 previous errors; 20 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0061, E0308.
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0061`.
[INFO] [stdout] 
[INFO] [stdout] warning: 4 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 5 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 4 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 5 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: build failed
[INFO] running `Command { std: "docker" "inspect" "e8c2abdf7178160b6ebf9143f0d5814265123ed90cf60fb6ba500ce58b720822", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "e8c2abdf7178160b6ebf9143f0d5814265123ed90cf60fb6ba500ce58b720822", kill_on_drop: false }`
[INFO] [stdout] e8c2abdf7178160b6ebf9143f0d5814265123ed90cf60fb6ba500ce58b720822
